Todo dataframe espacial de clase sf tiene una variable donde se ubica la geometría que define lo que representa (punto, línea o polígono)
Asociada a la geometría siempre hay una variable con el ID de la geometría (que la identifica).
Los atributos son datos que deseamos visualizar espacial y gráficamente vinculados a esos ID.
Por lo tanto, la tabla de datos de esas variables (atributos) deben tener el mismo ID que la parte espacial para poder unirlas.
Ejemplo de ID nomenclados: códigos estadísticos del INDEC en polígonos (provincia, departamento, etc)
Datos espaciales
Datos de área: datos agregados dentro de áreas o polígonos. Mapas corópleticos
Datos geoestadísticos: variables continuas que se desarrollan sobre el territorio. Métodos de interpolación. Predicción de valores
Patrones de punto: variables asociadas a puntos. Conteo de eventos. Proceso espacial subyacente que origina el patrón de puntos y evaluación si este presenta aleatoriedad, agrupamiento o regularidad.
Visualización espacial de datos de salud
Dentro de los formatos vectoriales, habitualmente los datos de salud que deseamos visualizar:
De forma directa, agregados o resumidos a un área determinada (polígonos). Por ejemplo: indicadores pertenecientes a un departamento o provincia, como una tasa o un promedio para un determinado año.
Variables medioambientales, como contaminación atmosférica de estaciones de monitoreo o de suelo donde a partir de una muestra se predice toda la matriz del área.
Patrones de puntos, como accidentes tránsito, casos de una enfermedad, etc. (cuidado con la confidencialidad de los datos cuando se trate de individuos - se suelen crear mapas de calor u otra transformación para anonimizar datos).
Mapas de áreas
Mapas de densidad de puntos: cada área está asociada a un atributo resumido que cuantifica la variable. Los puntos se visualizan al azar sobre el área. Cuantos más puntos haya en un área determinada, mayor será el valor del atributo en esa área. Pueden ser muy engañosos en aplicaciones de salud pública, ya que es fácil que quienes los leen asuman que cada punto representa la ubicación real de un evento.
Mapas de símbolos: se ubica un símbolo en el centro de cada región y el valor del atributo asociado a cada característica se indica mediante el tamaño del símbolo. También se suele mostrar un gráfico de sectores o de barras por cada área.
Mapas coropléticos
Ejemplos
Mapas de densidad de puntos
Mapas de símbolos
Mapas coropléticos
Son el tipo más común para la visualización de datos de área.
Utilizan diferentes combinaciones de colores y patrones para representar diferentes valores de la variable de atributo asociada con cada área.
Cada área se colorea según la categoría a la que pertenece su valor de atributo.
Generalmente incluyen una leyenda que determina la escala de colores/intensidades.
Predominan en estudios de salud publica.
Escalas
Continuas: representan variables numéricas contínuas con colores en gradientes del tono más claro (blanco) al más oscuro (negro).
Discretas: representan variables categóricas o variables numéricas contínuas categorizadas en intervalos de clase. Estos intervalos se construyen de distintas formas (divisiones regulares, por cuantiles, métodos estadísticos para puntos de corte, etc)
Entre los métodos más complejos de creación de puntos de corte encontramos:
Optimización de Jenks: agrupa intervalos minimizando la varianza dentro de cada clase y maximizandola entre ellas.
kmeans: utliza de clasificación no supervisada (agrupamiento) de kmeans para determinar los intervalos.
hclust: usa el clustering jerarquico para generar los saltos de intervalos en la escala.
Ejemplos coropléticos
Mapas coropléticos - escala contínua
Mapas coropléticos - escala discreta
Elementos visuales: variables
color de relleno (se utiliza en polígonos)
color de contorno (se usa tanto en puntos y lineas, como en contornos de polígonos)
ancho de línea
tipo de línea (contínua o conformada por otros caracteres)
tamaño (simbolos, puntos, etc)
forma (forma de un simbolo)
transparencia (elemento visual que, en general, no se utiliza para representar variables)
Mapas estáticos e interactivos
Hay dos posibilidades de creación de mapas: salidas estáticas y salidas dinámicas (web)
Las estáticas suelen utilizar fuentes locales de datos y se guardan como jpg, png o pdf.
Las dinámicas / interactivas, son salidas tipo web. Es decir, archivos html, que generalmente conectan con servidores de mapas (fuente externa). Permiten navegar por el mapa, hacer zoom, seleccionar objetos y todas las cosas que el creador de la salida le incorpore.
Mapas de puntos
Representan observaciones puntuales georeferenciadas con latitud y longitud, o en su defecto ubicadas en un domicilio dentro de una capa “callejera”.
Muchas veces no se pueden compartir / publicar debido a la confidencialidad de los datos. Por lo tanto se construyen mapas de calor, densidad de kernel o distintas transformaciones dentro del análisis espacial de patrones de puntos.
Exige georeferenciar previamente las observaciones (obtener las coordenadas de cada ubicación).
Ejemplos
Mapas de puntos georreferenciados
Mapas de puntos - mapa de calor
Visualización de capas raster
Se pueden visualizar capas raster únicas o junto a capas vectoriales.
El paquete terra y el paquete stars contiene las dos posibilidades. No así sf que es solo vectorial.
No se utiliza mucho en salud, salvo cuando se abordan elementos ambientales como tipo de suelo, temperaturas, etc que se capturan y procesan con imágenes satelitales y fotos areas.
El procesamiento de las capas raster es totalmente diferente a el caso vectorial, donde tenemos una matriz de elementos y variables (atributos) relacionadas. Aquí es la misma imagen, conformada por pixeles de un determinado tamaño la que se vincula con el atributo. Hay tantas imágenes como atributos / temporalidad se haya capturado. Por ejemplo, cada pixel representa a una temperatura en un momento dado.
Elementos importantes en un mapa
Título adecuado (que informe sobre tiempo, lugar y persona)
Leyenda informativa (que haga entendible el mapa)
Rosa de los vientos (representa los puntos cardinales e indica el norte)
Escala (indica la relación de distancias de un mapa y las distancias reales)
Fuente de datos y proyección (fuente de la información, similar a un gráfico estadístico. Algunos mapas, además, expresan su proyección)
Paquete tmap
Se basa en la gramática de gráficos del ggplot2 aplicada a mapas
El código se construye por “capas” unidas con un simbolo + (similar a ggplot2)
Todas las funciones comienzan con tm_
La función principal es tm_shape() que define los datos de entrada (permite objetos vectoriales y raster)
Le sigue alguna definición visual asociada a la geometría de la capa. tm_fill() para relleno de polígonos, tm_borders() para contornos de polígonos, tm_polygons() para polígonos completos, tm_symbols() para simbolos en puntos, etc.
Con el paquetes tmap hay dos formas de setear la salida (se ejecuta previamente al código del mapa):
tmap_mode("plot"): modo estático (salida como imagen - jpg, png, pdf, etc -)
tmap_mode("view"): modo interactivo (salida como html dinámico)
tmap: escalas
Las escalas controlan cómo se representan los valores en el mapa y en la leyenda, y dependen en gran medida de la variable visual seleccionada
Por defecto, la escala utilizada es tm_scale(). Luego hay una familia de funciones para diferentes tipos de datos: tm_scale_continuous(), tm_scale_continuous_log(), tm_scale_categorical(), etc.
El argumento style define el estilo de la escala. En el caso de tm_scale_intervals() puede ser: “fixed”, “sd”, “equal”, “pretty”, “quantile”, “kmeans”, “hclust”, “bclust”, “fisher”, “jenks”, “dpih”, “headtails”, “maximum”, o “box”. Distintas formas de crear intervalos de clase.
Todas las escalas utilizan las paletas de colores de cols4all::palettes(), dependencia que es parte de tmap. Para visualizar los colores en una app de shiny: ejecutar cols4all::c4a_gui()
tmap: diseño
El diseño del mapa se refiere a la combinación de todos sus elementos para formar un mapa coherente. Estos elementos incluyen, entre otros, los objetos que se van a representar, la cuadrícula, la barra de escala, el título y los márgenes.
Los elementos de mapa adicionales, como retículas, rosa de los vientos, barras de escala y títulos, tienen sus propias funciones:
tm_graticules(): incorpora cuadrículas
tm_compass(): setea la flecha del Norte (rosa de los vientos)
tm_scalebar(): agrega barra de escala y cambia su configración
tm_title(): maneja el título y su aspecto estético
tm_credits(): pie de mapa
tmap: ejemplo detallado
tm_shape(mapa_sf) +tm_polygons(fill ="variable",fill.scale =tm_scale_continuous(values ="-orange_blue_diverging"),fill.legend =tm_legend("", position =tm_pos_in("left", "top"))) +tm_title("Aquí va el títlo con el lugar y el año") +tm_compass(position =tm_pos_in("left", "bottom")) +tm_scalebar(position =tm_pos_in("left", "bottom")) +tm_credits("Fuente de datos", position =tm_pos_in("left", "bottom"))
tmap: ejemplo detallado
tmap: interactivos
Algunas funciones están asociadas a salidas interactivas, es decir son útiles en modo “view” y no funcionan en modo “plot”.
Entre ellas encontramos:
tm_basemap(): capa base del mapa obtenida de un proveedor web -se define dentro de la función-
Argumentos group y group.control: agrupa capas del mapa (opciones de botones tipo radiobutton o checkbutton)
Argumentos popup.vars, popup.format y hover: define que dato se muestra al pasar el mouse por la geometría y al hacer click.
Exportación
La función de exportación es tm_save() y permite guardar los mapas estáticos en archivos basados en pixeles como png, jpg o tiff y en formatos vectoriales como pdf, eps o svg.
También se puede exportar los mapas interactivos como html completos con el argumento selfcontained = FALSE en la función tm_save(). El html se genera junto a una carpeta local (index_file) con los archivos JavaScript y CSS necesarios (a veces suele ser bastante pesada)
La función tm_save() tiene además varios argumentos que nos permiten adaptar la salida en resolución, escala, alto y ancho del mapa
Paleta de colores
Existen varios paquetes en R que traen y/o gestionan paleta de colores para mapas.
Sirven para mostrar datos numéricos ordenados, como fechas o valores ordenados
Utiliza colores que varían suavemente de claro a oscuro o viceversa
Divergentes (contínuas)
Combina dos paletas secuenciales con un punto final compartido en el valor central
Se utiliza a menudo para tener un tono para valores “positivos” y otro para valores “negativos”
Discretas (cualitativas)
Permite crear rangos con tamaños desiguales para representar mejor las diferencias en los datos
Paleta de colores
Paquetes como cols4all se integran con tmap (a partir de la versión 4)
Muchos de los paquetes contienen paletas compatibles con el daltonismo. Un paquete interesante para comprobar esta compatilidad es colorblindcheck
Las personas con deficiencia visual del color carecen de (al menos) un tipo de tono. En los tres tipos de daltonismo ( deuteranopía , protanopía y tritanopía) , los tonos ausentes son aquellos sensibles principalmente a las longitudes de onda media (verde), larga (rojo) y corta (azul), respectivamente. La percepción del color en estas personas se basa en los dos tipos de tonos restantes. Como resultado, las personas con deuteranopía y protanopía tienen dificultad para distinguir el verde del rojo, mientras que las personas con tritanopía apenas pueden distinguir el azul del amarillo